package fons.model.ontology.requirement;

import java.util.Collection;
import java.util.List;
import java.util.Set;

import fons.model.ontology.Context;
import fons.model.ontology.Dimension;
import fons.model.ontology.Value;


public interface Requirement {
	public Requirement of (Set<Dimension> dimensions);
	public Requirement in (Set<Dimension> dimensions);
	public Requirement as (Set<Dimension> dimensions);
	public Requirement as (Dimension dimension);
	
	//public Requirement each(Collection<? extends Match> matching);
	public Requirement each (List<Set<Dimension>> matching);
	
	public Collection<Value> reduceAll(Set<Value> values);
	
	public void setContext(Context context);
	public String getName();
}
